System and method for data-driven insight into stocking out-of-stock shelves

ABSTRACT

Systems, methods, and non-transitory computer-readable storage media for generating rate-of-sales models for products based on historical data of when products are being sold, then generating, in real-time, schedules for restocking items on store shelfs such that the amount of items on the shelf maintain desired rates of sales per the prediction models. This is accomplished used historical data in combination with real-time data regarding the current shelf inventory, as well as updating machine-learning models to improve estimates over time.

BACKGROUND 1. Technical Field

The present disclosure relates to identifying when to restock shelves,and more specifically to using cameras, sensors, and sales transactionsto identify when sales are made and maximize the rate of sales.

2. Introduction

The rate at which products are sold is a critical element for anybusiness. In general terms, gross income for sales of a product can bewritten as gross income=sales price per unit*total units sold (* being asymbol of multiplication). The total units sold equation can be furtherbroken down to total units sold=average units sold per unit oftime*time. Under certain conditions, the average units sold per unit oftime, or sales rate for the product, can change. For example, if thereare not products in stock, or not sufficient units on a shelf, the rateof sales will decrease or stop. To maximize profits, businesses willseek to maintain the sales rate as high as possible.

SUMMARY

An exemplary method for practicing the concepts disclosed herein caninclude: receiving, at a server and from a database, a current shelfinventory of a product on a shelf in a store; generating, at the serverand based on the current shelf inventory of the product, and using arate of sales model specific to the product, a schedule for restockingthe product on the shelf; receiving, at the server, a real-timenotification that at least one unit of the product has been removed fromthe shelf; modifying the current shelf inventory based on thenotification, to yield an updated shelf inventory; modifying the rate ofsales model based on the sale, to yield an updated rate of sales modelspecific to the product; and generating, using the updated shelfinventory and the updated rate of sales model, an updated schedule forrestocking the product on the shelf.

An exemplary system configured to practice the concepts disclosed hereincan include: a processor; and a computer-readable storage medium havinginstructions stored which, when executed by the processor, cause theprocessor to perform operations comprising: receiving, from a database,a current shelf inventory of a product on a shelf in a store;generating, based on the current shelf inventory of the product andusing a rate of sales model specific to the product, a schedule forrestocking the product on the shelf, wherein the rate of sales model hascalculated rates of sale based on shelf inventory; receiving a real-timenotification from a camera monitoring the shelf that at least one unitof the product has been removed from the shelf; modifying the currentshelf inventory based on the notification, to yield an updated shelfinventory; modifying the rate of sales model based on the sale, to yieldan updated rate of sales model specific to the product; and generating,using the updated shelf inventory and the updated rate of sales model,an updated schedule for restocking the product on the shelf.

An exemplary non-transitory computer-readable storage medium configuredto perform operations as disclosed herein can have instructionscomprising: receiving, from a database, a current shelf inventory of aproduct on a shelf in a store; generating, based on the current shelfinventory of the product and using a rate of sales model specific to theproduct, a schedule for restocking the product on the shelf, wherein therate of sales model has calculated rates of sale based on shelfinventory; receiving a real-time notification from a camera monitoringthe shelf that at least one unit of the product has been removed fromthe shelf; modifying the current shelf inventory based on thenotification, to yield an updated shelf inventory; modifying the rate ofsales model based on the sale, to yield an updated rate of sales modelspecific to the product; and generating, using the updated shelfinventory and the updated rate of sales model, an updated schedule forrestocking the product on the shelf.

Additional features and advantages of the disclosure will be set forthin the description which follows, and in part will be obvious from thedescription, or can be learned by practice of the herein disclosedprinciples. The features and advantages of the disclosure can berealized and obtained by means of the instruments and combinationsparticularly pointed out in the appended claims. These and otherfeatures of the disclosure will become more fully apparent from thefollowing description and appended claims, or can be learned by thepractice of the principles set forth herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary system architecture;

FIGS. 2A-2D illustrate exemplary rate of sales models;

FIG. 3 illustrates a multi-layered machine learning process forpredicting shelf inventory levels;

FIG. 4 illustrates an example method embodiment; and

FIG. 5 illustrates an example computer which can be used to perform theconcepts disclosed herein.

DETAILED DESCRIPTION

To try to increase sales, and subsequently increase profits, businessescan use the concepts disclosed herein to maintain shelf inventory levelsto achieve preferred rates of sale. More specifically, systemsconfigured as disclosed herein can identify when the lack of a producton a shelf begins to negatively affect the rate of sales for thatproduct, and issue a notification to an autonomous vehicle, robot, or astore associate to restock the shelf. The system may also identify whensales of the item are negatively impacted because there is too muchinventory available on the shelf, and subsequently withhold restockingof an item so that the available shelf inventory eventually reacheslevel with a higher rate of sales.

To identify the levels of shelf inventory which promote (or hinder)sales of a product, the system collects the number of items stored on ashelf in real-time using cameras, scales, and/or sales data from cashregisters. This data is combined with time stamps indicating when theproduct is removed from the shelf, or when the sale occurred. The systemcan then, using the combined data, create a rate of sales model forspecific products which predicts the sales rate of the product based onthe amount of the product which is on the shelf. Over time, this modelcan be updated with new information, allowing the model to become moreaccurate. By having a more accurate model, the schedule for when theproduct is restocked can become more efficient, thereby improving sales(because the restocking will be performed to maintain a desired rate ofsales), while also improving the restocking process. Embodiments of theinvention allow restocking to occur before the inventory level fallsbelow a threshold that maintains a desired sales rate.

As products are moved in a store, the rate of sales of the product mayshift. For example, if a product is moved from eye-level on a shelf tothe bottom of a shelf, the rate of sales of the product may decrease.However, due to the iterative and periodic updating processes used tomaintain current rate of sales models based on real-time data, the rateof sales models can self-correct within several iterations of theupdating process, resulting in rate of sales models which are updated toreflect the new location of the product.

In addition to updating the rate of sales models of specific products,one or more machine learning algorithms/models can be applied toinformation such as day of the week (weekday versus weekend), weather,parameters, calendar information (holidays), and market information (newstores, competition, etc.), to further refine the rates of sales models.This results in two levels of iteratively updating models and algorithmsto provide improved sales forecasting: a first layer which tunes amachine learning model (or models) to avoid overfitting, and a secondlayer which iteratively tunes sales models based on inter-purchasetimes.

In some cases, the system can predict that below a certain thresholdlevel of inventory on the shelf the rate of sales for a given productbegins to quickly drop, whereas above that threshold level of inventorythe rate of sales for that product is relatively stable. In such cases,the system can predictively set a restocking schedule to refill theshelf inventory of the product just before the shelf inventory isexpected to reach the threshold.

In other instances, the system can predict that the rate of salesdecreases both when the shelf inventory is above and below thresholdamounts. In other words, there is a value of shelf “fullness” which, ifexceeded, slows down the rate of sales, and another value which, if theshelf volume is less than, similarly slows down the rate of sales. Thesystem will therefore adjust the restocking schedule (both the amountbeing restocked and the frequency of restocking) to try and keep theamount of product on the shelf with the range between the upper andlower values.

Consider the example of bread, water, or toilet paper on a store shelfbefore a snowstorm, hurricane or other (predictable) natural disaster.In some stores, the rate of sales for these products may remain constantregardless of the amount of inventory present on the shelf. However, insome instances, the rate of sales might increase if customers detect athreshold level of scarcity. That is, customers might buy more bread,water, or toilet paper if the shelf appears half-empty or nearly emptythan if the shelf were full or mostly full. Systems configured accordingto this disclosure can identify how customers react, in terms of sales,to specific shelf inventory levels and adjust restocking to maximizethose reactions.

Detection of merchandise being removed from a store shelf can occurthrough the use of cameras, scales, signals received from a cashregister at the point of sale, RFID tags, and/or any other detectionmechanism. For example, a camera or cameras which can view shelfinventory can take periodic pictures or video of the shelf, and a serveror other computer configured to perform image comparisons can comparethe images to determine changes in inventory. An autonomous vehicle orrobot may also be used to detect items removed from shelfs. The robotsmay move through the aisles and obtain images of the shelfs. The imagemay be stored and compared to prior images to detect items removed forthe shelves.

Such image comparison may rely, for example, on a percentage of shadowpresent in each respective image. A scale sensor may, for example, bebuilt into the shelf to identify when products are placed andsubsequently removed from the shelf. Shelves may likewise be configuredto have RFID detection such that when products are placed on the shelf,the shelf can identify the reception of a product and communicate thatthe product was received to an inventory monitoring server. Likewise,such a shelf can identify the removal of a product from the shelf andreport the removal to the inventory monitoring server. Yet anothermechanism for identifying current shelf inventory is recording a shelfinventory when an autonomous vehicle, robot, or store associate restocksa shelf with a product, then recording purchases based on electronictransmissions from cash registers to the inventory monitoring server.

In each of these examples, the number of products removed from the shelfat any instant can be timestamped and recorded. For example, the recordof items being removed from the shelf can be recorded in a historicalsales database, which can later be used by the server or anothercomputing device to build a rate of sales model for the product, therate of sales model estimating future sales based on the historicalrecord of when sales occurred and the quantity of such sales. In oneconfiguration, the rates of sales model provides estimates of rate ofsales of a given product solely on the amount of inventory on the shelf.In other configurations, the rate of sales model can be based onadditional factors, forming a multi-dimensional model. For example,rather than being a two-dimensional model connecting the rate of salesand shelf inventory, the rate of sales model can be an N-dimensionalmodel using any number of factors as required by a specificconfiguration.

For example, the rate of sales model can, for example, calculate theinter-purchase time per customer entering the store, and can thenpredict the rate of sales based on both the current shelf inventorylevel and/or the number of customers in the store. In someconfigurations, the model can be further updated based on demographicsof the customers entering the store. For example, rather than justbasing the sales rate on the total number of customers in the store, thesales rate could be calculated on the respective numbers of men and/orwomen in the store, the number of children, the number of peopleshopping alone versus groups, the number of people in a group shoppingtogether (that is, is the group two people or ten people?), customersusing a shopping cart versus a shopping basket, customers requiring amotorized shopping cart, sales staff on the floor, sales staff on anaisle next to the product, etc. All of these factors can be updated inreal-time based on camera information collected as customers enter orshop within a store, based on the positions of store associates,information collected and uploaded to a server by a store greeter,scales/laser counters as individuals enter and leave the store, or inother practical ways of collecting such data.

Having provided a summary of the invention, the disclosure now turns tothe specific examples and configurations illustrated in FIGS. 1-5. Whilespecific implementations are described, it should be understood thatthis is done for illustration purposes only. Other components andconfigurations may be used without parting from the spirit and scope ofthe disclosure, and elements from each example may be combined orremoved as required based on the specific needs of a practicing entity.Such variations shall be described herein as the various embodiments areset forth. The disclosure now turns to FIG. 1.

FIG. 1 illustrates an exemplary system architecture 100. In this example100, a store shelf 102 contains products 104, 106, 108, each of whichhas distinct levels of shelf inventory present. For example, “Cereal A”104 appears to be at maximum shelf capacity, “Cereal B” 106 appears tobe close to empty, and “Cereal C” 108″ appears to have a shelf inventorylevel between the relative capacities of the other products 104, 106.The respective level of inventory of each product 104, 106, 108 can beidentified and recorded using cash register 110 data which iscommunicated, in real-time by sending an electronic signal from a cashregister 110 processing a sale of the product to a receiving computer(such as a server 116).

Alternatively, the level of inventory can be identified using a camera112 which can view the products 104, 106, 108 as they rest on the shelf102. The camera 112 may be mounted on a robot or autonomous vehicle thatmoves through the store. The autonomous vehicle determines its locationin the store (aisle, shelf location, etc.). The camera of other imagingdevice is used to identify the item of the shelf and its quantity. Thecamera 112 can send images of the products 104, 106, 108 on the shelf102 to the server 116, which can record the video or images and performan image recognition to identify when products have been removed fromthe shelf 102. The image recognition can, for example, use colors,shadows, or specific writing on products (i.e., the names or labels onthe products 104-108) to identify filled or empty spots for products onthe shelf 102, and from that information determine how much product isbeing stored on the shelf. For example, if the camera 112 detects thatshadows (or markings not associated with the product) fill 50% of thespace in an image, based on that information the server 116 candetermine the amount of inventory on the shelf 102 by knowing thedimensions of the product and having access to previous shadowcalculations.

In yet other configurations, the amount of product on the shelf 102 canbe determined using a scale 114, where the weight of each product isknown, and a scale is built into each shelf rack of the shelf unit 102.As products 104-108 are restocked by a store associate, the scale 114for each shelf can send electronic signals indicating the increasedweight to the server 116. The server 116 can, upon identifying that theincreased weight indicates a certain number of retail units of a productbeing added to the shelf, can update the current shelf inventory forthat particular product. As customers later remove products from theshelf, the scale 114 can detect a decrease in the weight of the shelf,send a signal to the server 116 noting the decreased weight, and theserver 116 can update the current shelf inventory accordingly.

To maintain shelf inventory at a desired level, the server 116 retrievesa rate of sales model 118 from a database. The rate of sales model 118is generated using historical sales data which is timestamped, thencombined with the shelf inventory levels recorded by the server 116,resulting in a model 118 which describes the rate of sales of theproduct based on the current shelf inventory (and/or other factors).Using the current shelf inventory and the rate of sales model 118, theserver 116 can predict when the shelf 102 will need to be restocked tomaintain desired sales rates. The server 116 can then generate a restockschedule 120 and send that restock schedule 120 to an autonomousvehicle, robot, or a store associate 122, thereby informing the anautonomous vehicle, robot, or a store associate 122 when the shelf 102needs to be restocked. For example, the server 116 can transmit anelectronic message regarding the restocking schedule to a mobile device(such as a smartphone, MC40, or other data collection terminal)associated with the store associate 122 or to a robot.

The robot may receive the request for the item and the number of itemsto restock. The robot can determine the location in the stock room ofthe items and retrieve the items. The robot may also determine the aisleand shelf location for the items, and proceed to restock the item.

FIGS. 2A-2D illustrate exemplary rate of sales models which can be usedby the server 116 to determine when a product should be restocked tomaintain a desired sales rate. In example FIG. 2A 202, the rate of salesremains constant 204 over most amounts of shelf inventory, but begins todecrease 206 sharply once the shelf inventory reaches a certain level.For such a product, the server 116 may seek to maintain the rate ofsales at the constant/high level 204 as long as possible, while alsominimizing the effort of restocking. To achieve this goal, the server116 can determine that the shelf should be restocked just before theshelf inventory is projected to hit the point at which sales begin todecrease 206, and that the amount placed on the inventory should be asmuch as possible (because there is no negative outcome on the rate ofsales due to excessive shelf inventory).

In example FIG. 2B 208, the rate of sales constantly decreases 210linearly, such that any decrease in the shelf inventory results in acorresponding decrease in the rate of sales. In such a configuration,the server 116 will seek to maintain the shelf inventory as high aspossible but may also use other factors, such as the value of potentialsales compared to the value of a store associate's time spent restockingthe product. In addition, the server 116 may identify alternativerestocking procedures for such an item, such as constantly restockingthe product with a few retail units for the shelf every time nearbyproducts are restocked, rather than initiating large restocking events.

In example FIG. 2C 212, the rate of sales varies based on the shelfinventory level, with an apex 214 occurring below full shelf capacity.In such a scenario, the server 116 will seek to maintain the shelfinventory within the apex 214 range, and can initiate restockingnotifications based on that range, such that the inventory does notexceed the upper limit of the apex 214 range or fall below the lowerlimit of the apex 214.

Example 2D illustrates another rate of sales graph for a product. Thesales rate for the product is determined based on the factors describedherein. The on-shelf inventory level “P” that results in the highestrate of sales is identified. A minimum threshold for the on-0shelfinventory may also be identified. This may be the level below which therate of sales should robot drop. This level “Min” may be set by a user,such as a store manager or associate. A replenishment frequency may alsobe determined. This may also be set by a user, such as a store manageror associate. An employee or robot is not able to wait at the shelf atall times and re-stock the item. There are other items to stock andtasks to be performed, with fixed resources to do so. An optimal rangefor the on-shelf inventory “t” is determined based on the maximumreplenishment rate. The time for the next replenishment is determinedbased on the rate of sales for the current inventory level. This may bedone to maintain the optimal sales rate and/or to not drop below theminimum threshold for the sales rate. The number of items that need tobe replenished is also determined. Forecast how long it will take forthe replenishment to occur. For example, if the sales rates for an itemdrops off once twelve items are on the shelf frequency, there are 15items on the shelf, the rates of sales is three every hour; thereplenishment request should be made so that the number of items on theshelf does not fall below 12. The replenishment request for thedetermined amount is made on the time calculated.

FIG. 3 illustrates an exemplary multi-layered machine learning processfor predicting shelf inventory levels. In this example, there are twodistinct points of feedback—a tuning of a machine learning modelparameter to avoid over fitting 320, which improves the machine learningmodels being used to generate rate of sales models, and recalculatinginter-purchase times per customer based on updated sales data/updatedsales models. The multiple points of feedback result in real-timeimprovements to the sales prediction technology, allowing the salesprediction to be faster and/or more accurate.

In this example, a server 116 records purchase times of products 302. Inother configurations, this record can be for anytime a customer removesa product from a shelf, rather than actually performing the purchase.Based on purchase times of products 302, the server 116 calculatesinter-purchase time per customer 304 for the product. The server 116receives other information 306-314, such as the day-type (if the currentday of the week is a weekday, weekend, or other particulartype/classification of day) 306, weather information 308, storedparameters 310 used to normalize or otherwise manipulate models toprovide more accurate forecasting, calendar information (such asholidays, or days following holidays) 312, and/or market information(such as new stores, competitors, when advertisements were provided,deals, etc.). The server 116 takes the inter-purchase time per customer,the other information 306-314, and generates a rate of sales model basedon the data available. The server 116 then applies multiple machinelearning models on the rate of sales model 316, resulting in multipleforecasts of what future sales will be based on current conditions. Theserver 116 selects one of these forecasts based on factors such as pastperformance, level of accuracy, etc., and tunes a machine learning modelparameter to limit overfitting 320. In other words, the server 116modifies a parameter to account for noise or any idiosyncrasies in thedata being processed. The selected sales model is then updated with themodified parameter 322, and the updated rate of sales model is used topredict a next purchase 324. As sales data is received in real-time, therate of sales model can be refreshed on a periodic basis 326 (i.e., oncea day, once a week, etc.). This model can then be applied to new salesdata and be used in future calculations 304, use of models 316, etc. Inaddition, the predictions made by the models not selected by the serverat step 316 can be recorded to evaluate which models are best atpredicting sales and the effect of sales, which can result in iterativeimprovements to the selection of the models and the models themselves.

FIG. 4 illustrates an example method embodiment 400. In this example400, a server 116 as illustrated in FIG. 1 is performing the method. Themethod includes receiving, at a server 116 and from a database, acurrent shelf inventory of a product on a shelf in a store (402). Theserver 116 generates, based on the current shelf inventory of theproduct, and using a rate of sales model specific to the product, aschedule for restocking the product on the shelf (404). The server 116receives a real-time notification that at least one unit of the producthas been removed from the shelf (406) and modifies the current shelfinventory based on the notification, to yield an updated shelf inventory(408). The server 116 also modifies the rate of sales model based on thesale, to yield an updated rate of sales model specific to the product(410), and generates, using the updated shelf inventory and the updatedrate of sales model, an updated schedule for restocking the product onthe shelf (412).

In certain configurations, this method can be further expanded toinclude identifying, within one of the rate of sales model and theupdated rate of sales model, an amount of inventory corresponding to anapex rate of sales of the product. In such configurations, at least oneof the schedule and the updated schedule can be generated to maintainshelf inventory of the product within a threshold range of the amount ofinventory corresponding to the apex rate of sales.

In some configurations, the modifying of the rate of sales model isperformed using machine learning, wherein the machine learning uses amachine learning model which is updated on a periodic basis, the updatesto the machine learning model being based on predictive ability of themachine learning model regarding sales of the product.

In still other configurations, the rate of sales model identifiesdistinct rates of sales of the product when the shelf is full and whenthe shelf is half-full, and/or identifies an amount of inventory for theshelf below which a rate of sales of the product decreases.

Modifying the current shelf inventory and modifying of the rate of salesmodel can occur in real-time after each sale of the product, or uponidentifying that a product has been removed from a shelf. For example, areal-time notification can be generated at a point of sale of the atleast one unit (i.e., when a cash register is used to sell the item tothe customer), or the real-time notification can be generated based on avideo feed analysis identifying a change in the current shelf inventory.As another possibility, the real-time notification can be generatedbased on weight sensor associated with the shelf identifying a change inshelf weight associated with the current shelf inventory.

With reference to FIG. 5, an exemplary system 500 includes ageneral-purpose computing device 500, including a processing unit (CPUor processor) 520 and a system bus 510 that couples various systemcomponents including the system memory 530 such as read only memory(ROM) 540 and random access memory (RAM) 550 to the processor 520. Thesystem 500 can include a cache of high speed memory connected directlywith, in close proximity to, or integrated as part of the processor 520.The system 500 copies data from the memory 530 and/or the storage device560 to the cache for quick access by the processor 520. In this way, thecache provides a performance boost that avoids processor 520 delayswhile waiting for data. These and other modules can control or beconfigured to control the processor 520 to perform various actions.Other system memory 530 may be available for use as well. The memory 530can include multiple different types of memory with differentperformance characteristics. It can be appreciated that the disclosuremay operate on a computing device 500 with more than one processor 520or on a group or cluster of computing devices networked together toprovide greater processing capability. The processor 520 can include anygeneral purpose processor and a hardware module or software module, suchas module 1 562, module 2 564, and module 3 566 stored in storage device560, configured to control the processor 520 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. The processor 520 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

The system bus 510 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, and alocal bus using any of a variety of bus architectures. A basicinput/output (BIOS) stored in ROM 540 or the like, may provide the basicroutine that helps to transfer information between elements within thecomputing device 500, such as during start-up. The computing device 500further includes storage devices 560 such as a hard disk drive, amagnetic disk drive, an optical disk drive, tape drive or the like. Thestorage device 560 can include software modules 562, 564, 566 forcontrolling the processor 520. Other hardware or software modules arecontemplated. The storage device 560 is connected to the system bus 510by a drive interface. The drives and the associated computer-readablestorage media provide nonvolatile storage of computer-readableinstructions, data structures, program modules and other data for thecomputing device 500. In one aspect, a hardware module that performs aparticular function includes the software component stored in a tangiblecomputer-readable storage medium in connection with the necessaryhardware components, such as the processor 520, bus 510, display 570,and so forth, to carry out the function. In another aspect, the systemcan use a processor and computer-readable storage medium to storeinstructions which, when executed by the processor, cause the processorto perform a method or other specific actions. The basic components andappropriate variations are contemplated depending on the type of device,such as whether the device 500 is a small, handheld computing device, adesktop computer, or a computer server.

Although the exemplary embodiment described herein employs the hard disk560, other types of computer-readable media which can store data thatare accessible by a computer, such as magnetic cassettes, flash memorycards, digital versatile disks, cartridges, random access memories(RAMs) 550, and read only memory (ROM) 540, may also be used in theexemplary operating environment. Tangible computer-readable storagemedia, computer-readable storage devices, or computer-readable memorydevices, expressly exclude media such as transitory waves, energy,carrier signals, electromagnetic waves, and signals per se.

To enable user interaction with the computing device 500, an inputdevice 590 represents any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 570 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems enable a user to provide multiple types of input to communicatewith the computing device 500. The communications interface 580generally governs and manages the user input and system output. There isno restriction on operating on any particular hardware arrangement andtherefore the basic features here may easily be substituted for improvedhardware or firmware arrangements as they are developed.

The steps and concepts described herein are exemplary and can beimplemented in any combination thereof, including combinations thatexclude, add, or modify certain steps and/or elements. The variousembodiments described above are provided by way of illustration only andshould not be construed to limit the scope of the disclosure. Variousmodifications and changes may be made to the principles described hereinwithout following the example embodiments and applications illustratedand described herein, and without departing from the spirit and scope ofthe disclosure.

We claim:
 1. A method comprising: receiving, at a server and from adatabase, a current shelf inventory of a product on a shelf in a store;generating, at the server and based on the current shelf inventory ofthe product, and using a rate of sales model specific to the product, aschedule for restocking the product on the shelf; receiving, at theserver, a real-time notification that at least one unit of the producthas been removed from the shelf; modifying the current shelf inventorybased on the notification, to yield an updated shelf inventory;modifying the rate of sales model based on the sale, to yield an updatedrate of sales model specific to the product; generating, using theupdated shelf inventory and the updated rate of sales model, an updatedschedule for restocking the product on the shelf; and sending a requestto restock the product on the shelf to an autonomous vehicle.
 2. Themethod of claim 1, further comprising: identifying, within one of therate of sales model and the updated rate of sales model, an amount ofinventory corresponding to an apex rate of sales of the product.
 3. Themethod of claim 2, wherein at least one of the schedule and the updatedschedule are generated to maintain shelf inventory of the product withina threshold range of the amount of inventory corresponding to the apexrate of sales.
 4. The method of claim 1, wherein the modifying of therate of sales model is performed using machine learning, wherein themachine learning uses a machine learning model which is updated on aperiodic basis, the updates to the machine learning model being based onpredictive ability of the machine learning model regarding sales of theproduct.
 5. The method of claim 1, wherein the rate of sales modelidentifies distinct rates of sales of the product when the shelf is fulland when the shelf is half-full.
 6. The method of claim 1, wherein therates of sales model identifies an amount of inventory for the shelfbelow which a rate of sales of the product decreases.
 7. The method ofclaim 1, wherein the modifying of the current shelf inventory and themodifying of the rate of sales model occur in real-time after each saleof the product.
 8. The method of claim 1, wherein the real-timenotification is generated at a point of sale of the at least one unit.9. The method of claim 1, wherein the real-time notification isgenerated based on a video feed analysis identifying a change in thecurrent shelf inventory.
 10. The method of claim 1, wherein thereal-time notification is generated based on weight sensor associatedwith the shelf identifying a change in shelf weight associated with thecurrent shelf inventory.
 11. A system comprising: a processor; and acomputer-readable storage medium having instructions stored which, whenexecuted by the processor, cause the processor to perform operationscomprising: receiving, from a database, a current shelf inventory of aproduct on a shelf in a store; generating, based on the current shelfinventory of the product and using a rate of sales model specific to theproduct, a schedule for restocking the product on the shelf, wherein therate of sales model has calculated rates of sale based on shelfinventory; receiving a real-time notification from a camera monitoringthe shelf that at least one unit of the product has been removed fromthe shelf; modifying the current shelf inventory based on thenotification, to yield an updated shelf inventory; modifying the rate ofsales model based on the sale, to yield an updated rate of sales modelspecific to the product; and generating, using the updated shelfinventory and the updated rate of sales model, an updated schedule forrestocking the product on the shelf.
 12. The system of claim 11,identifying, within one of the rate of sales model and the updated rateof sales model, an amount of inventory corresponding to an apex rate ofsales of the product.
 13. The system of claim 12, wherein at least oneof the schedule and the updated schedule are generated to maintain shelfinventory of the product within a threshold range of the amount ofinventory corresponding to the apex rate of sales.
 14. The system ofclaim 11, wherein the modifying of the rate of sales model is performedusing machine learning, wherein the machine learning uses a machinelearning model which is updated on a periodic basis, the updates to themachine learning model being based on predictive ability of the machinelearning model regarding sales of the product.
 15. The system of claim11, wherein the rate of sales model identifies distinct rates of salesof the product when the shelf is full and when the shelf is half-full.16. The system of claim 11, wherein the rates of sales model identifiesan amount of inventory for the shelf below which a rate of sales of theproduct decreases.
 17. A non-transitory computer-readable storage devicehaving instructions stored which, when executed by a computing device,cause the computing device to perform operations comprising: receiving,from a database, a current shelf inventory of a product on a shelf in astore; generating, based on the current shelf inventory of the productand using a rate of sales model specific to the product, a schedule forrestocking the product on the shelf, wherein the rate of sales model hascalculated rates of sale based on shelf inventory; receiving a real-timenotification from a camera monitoring the shelf that at least one unitof the product has been removed from the shelf; modifying the currentshelf inventory based on the notification, to yield an updated shelfinventory; modifying the rate of sales model based on the sale, to yieldan updated rate of sales model specific to the product; and generating,using the updated shelf inventory and the updated rate of sales model,an updated schedule for restocking the product on the shelf.
 18. Thenon-transitory computer-readable storage device of claim 17,identifying, within one of the rate of sales model and the updated rateof sales model, an amount of inventory corresponding to an apex rate ofsales of the product.
 19. The non-transitory computer-readable storagedevice of claim 18, wherein at least one of the schedule and the updatedschedule are generated to maintain shelf inventory of the product withina threshold range of the amount of inventory corresponding to the apexrate of sales.